SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TWSABA_REPO_Q95]   
/*-------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                --*/  
/*---Cliente              : OFISIS    --*/  
/*---Sistema              : TESORERIA    --*/  
/*---M+dulo               : Empresa                    --*/  
/*---Programa             : RPTE. INGRESOS - EGRESOS BNCOS.--*/  
/*---Script               : TMSABA_M.SQL         --*/  
/*---Nombre SP            : SP_TWSABA_REPO_Q95  --*/  
/*---Desarrollado por     : DCHIANG         --*/  
/*---Fecha Creacion   : 17/02/2005         --*/   
/*---Base Datos           : SQLSERVER    --*/  
/*---Versi+n              : 8.0                        --*/  
/*---Invoca a SP          :                            --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Modificado 1 por     : DCHIANG         --*/  
/*---Fecha Modificaci+n   : 17/02/2005    --*/   
/*---Detalle Modificaci+n : A SQL         --*/  
/*-------------------------------------------------------*/  
  
/*-------------------------------------------------------*/  
/*---Comentarios                                       --*/  
/*---                                                  --*/  
/*---                                                  --*/  
/*-------------------------------------------------------*/  
  
/*--------------------------------------------------------------------- */  
/* Drop Proc SP_TWSABA_REPO_Q95        */  
/* Grant All On SP_TWSABA_REPO_Q95 To Public     */  
/* SP_TWSABA_REPO_Q95'10', '001' , null        */  
/*----------------------------------------------------------------------*/  
@ISCO_EMPR TD_VC_002,   
@ISCO_USUA TD_VC_008,   
@ISFE_OPER varchar(10),  
@ISTI_FECH TD_VC_001, /*'O','S'*/  
@ISFE_INGR TD_VC_001, /*'O','D'*/  
@ISFE_EGRE TD_VC_001, /*'O','E','P','C'*/  
@ISCO_BANC TD_VC_003,   
@ISNU_CNTA_BANC TD_VC_020,   
@ISCO_CONS_MOVI VARCHAR(600),   
@ISDE_CONS_FECH VARCHAR(650)  
 As  
Create Table #TWPOSI_BANC_Q01_01  
( CO_EMPR varchar(02) NULL,  
CO_BANC varchar(03) NULL,  
NU_CNTA_BANC varchar(20),  
IM_INGR Numeric(16,4) null,  
IM_EGRE Numeric(16,4) null,  
IM_CHEQ_CART Numeric(16,4) null )  
  
Create Table #TWPOSI_BANC_Q01_02  
( CO_EMPR varchar(02) NULL,  
CO_BANC varchar(03) NULL,  
NU_CNTA_BANC varchar(20),  
IM_INGR Numeric(16,4) null,  
IM_EGRE Numeric(16,4) null,  
IM_CHEQ_CART Numeric(16,4) null )  
  
  
Create Table #TWSABA_REPO  
(CO_EMPR CHAR(02) NULL,   
 CO_BANC VARCHAR(03) NULL,  
 NU_CNTA_BANC VARCHAR(20) NULL,  
 AA_BNCO VARCHAR(04) NULL,  
 MM_BNCO VARCHAR(02) NULL,  
 IM_SALD_INIC Numeric(16,4) NULL)   
  
Create Table #TWSABA_REPO_AUXI(   
 CO_EMPR VARCHAR(02) NULL,  
 CO_BANC VARCHAR(03) NULL,  
 NU_CNTA_BANC VARCHAR(20) NULL,  
 IM_SALD_INIC Numeric(16,4) NULL)   
  
CREATE TABLE #TWMOVI_BANC_INEG  
(CO_EMPR VARCHAR(02) NULL,  
DE_NOMB VARCHAR(50) NULL,  
CO_BANC VARCHAR(03) NULL,  
DE_NOMB_BANC VARCHAR(100) NULL,  
NU_CNTA_BANC VARCHAR(20) NULL,  
TI_MOVI_BANC CHAR(01) NULL,  
TI_ENTI CHAR(01) NULL,  
CO_ENTI VARCHAR(20) NULL,  
DE_NOMB_ORDE VARCHAR(100) NULL,  
CO_MONE VARCHAR(03) NULL,  
TI_SITU VARCHAR(03) NULL,  
NU_CHEQ VARCHAR(15) NULL,  
NU_COMP_BANC VARCHAR(08) NULL,  
CO_TIPO_DOCU VARCHAR(03) NULL,  
NU_DOCU_BANC VARCHAR(15) NULL,  
DE_OBSE VARCHAR(100) NULL,  
IM_INGR NUMERIC(16,4) NULL,  
IM_EGRE NUMERIC(16,4) NULL,  
FE_OPER DATETIME NULL,  
FE_DISP DATETIME NULL,  
FE_ENTR_CHEQ DATETIME NULL,  
FE_PROG_CHEQ DATETIME NULL,  
FE_CHEQ DATETIME NULL,  
FE_REPO DATETIME NULL,  
SA_INIC NUMERIC(16,4) NULL )  
  
  
-- DECLARO VARIABLES DE TRABAJO  
  
DECLARE  
@VSCO_USUA TD_VC_008,  
@VDFE_OPER TD_DT_001,  
@VSTI_FECH TD_VC_001, /*'O','S'*/  
@VSFE_INGR TD_VC_001, /*'O','D'*/  
@VSFE_EGRE TD_VC_001 /*'O','E','P','C'*/  
  
-- ASIGNO LAS VARIABLES DE TRABAJO CON LAS VARIABLES DE ENTRADA  
  
SELECT @VSCO_USUA = @ISCO_USUA  
SELECT @VSTI_FECH = @ISTI_FECH   
SELECT @VSFE_INGR = @ISFE_INGR   
SELECT @VSFE_EGRE = @ISFE_EGRE   
SELECT @VDFE_OPER = Convert(Datetime, @ISFE_OPER, 103)   
  
-- INVOCA PROCEDURE PARA CARGA DE TABLAS TEMPORALES (SALDOS)  
  
EXECUTE SP_TWSABA_REPO_Q91 @VDFE_OPER, @VSTI_FECH, @VSFE_INGR, @VSFE_EGRE  
  
  
-- SENTENCIA QUE GRABA EN LA #TWMOVI_BANC_INEG  
  
EXEC('Insert Into #TWMOVI_BANC_INEG  
( CO_EMPR, DE_NOMB, CO_BANC,DE_NOMB_BANC,  NU_CNTA_BANC, TI_MOVI_BANC, TI_ENTI, CO_ENTI, DE_NOMB_ORDE, CO_MONE,   
  TI_SITU, NU_CHEQ, NU_COMP_BANC, CO_TIPO_DOCU,  NU_DOCU_BANC,   
  IM_INGR,   
  IM_EGRE,   
  FE_OPER, FE_DISP, FE_ENTR_CHEQ, FE_PROG_CHEQ, FE_CHEQ,  SA_INIC )  
  
Select t1.CO_EMPR, t4.DE_NOMB, t1.CO_BANC , t5.DE_NOMB_BANC, t1.NU_CNTA_BANC, t1.TI_MOVI_BANC, t1.TI_ENTI, t1.CO_ENTI, t1.DE_NOMB_ORDE, t6.CO_MONE,   
       t1.TI_SITU, t1.NU_CHEQ, t1.NU_COMP_BANC, t1.CO_TIPO_DOCU, t1.NU_DOCU_BANC,   
       PATINDEX("ACT", t1.TI_SITU ) * PATINDEX("I", t1.TI_MOVI_BANC )* t1.IM_MOVI,  
       PATINDEX("ACT", t1.TI_SITU ) * PATINDEX("E", t1.TI_MOVI_BANC )* t1.IM_MOVI,  
       t1.FE_OPER , t1.FE_DISP, T1.FE_ENTR_CHEQ, T1.FE_PROG_CHEQ, T1.FE_CHEQ,  
       t7.IM_SALD_INIC  
       From TCMOVI_BANC t1, TMEMPR t4,  TTBANC_FINA t5,TMCNTA_BANC t6,  #TWSABA_REPO t7  
       Where t1.CO_EMPR = "' + @ISCO_EMPR + '"  
 And t1.CO_BANC  = "' + @ISCO_BANC + '"   
 And t1.NU_CNTA_BANC = "' + @ISNU_CNTA_BANC + '"  
 And t1.CO_EMPR = t4.CO_EMPR  
 And t1.CO_BANC =t5.CO_BANC  
 And t1.CO_EMPR = t6.CO_EMPR  
 And t1.CO_BANC = t6.CO_BANC  
 And t1.NU_CNTA_BANC = t6.NU_CNTA_BANC  
 And t7.CO_EMPR = t1.CO_EMPR  
 And t7.CO_BANC = t1.CO_BANC  
 And t7.NU_CNTA_BANC = t1.NU_CNTA_BANC  
 And Exists ( Select CO_EMPR From  TTUSER_CNBA t8  
 Where t1.CO_EMPR = t8.CO_EMPR  
 And t1.CO_BANC  = t8.CO_BANC  
 And t1.NU_CNTA_BANC = t8.NU_CNTA_BANC  
 And t8.CO_USUA = "' + @ISCO_USUA + '"  
 And t8.ST_REPO = "S" ) ' + @ISCO_CONS_MOVI + @ISDE_CONS_FECH )  
  
            If @ISFE_INGR = 'O'  
  UPDATE #TWMOVI_BANC_INEG  
  Set FE_REPO = FE_OPER  
  WHERE TI_MOVI_BANC = 'I'  
  
            Else If @ISFE_INGR = 'D'  
  UPDATE #TWMOVI_BANC_INEG  
         Set FE_REPO = IsNull(FE_DISP, FE_OPER)  
  WHERE TI_MOVI_BANC = 'I'  
  
  
            If @ISFE_EGRE = 'O'  
  UPDATE #TWMOVI_BANC_INEG  
  Set FE_REPO = FE_OPER  
  WHERE TI_MOVI_BANC = 'E'  
  
            Else If @ISFE_EGRE = 'E'  
  UPDATE #TWMOVI_BANC_INEG  
  Set FE_REPO = IsNull(FE_ENTR_CHEQ, FE_OPER)  
  WHERE TI_MOVI_BANC = 'E'  
  
            Else If @ISFE_EGRE = 'P'   
  UPDATE #TWMOVI_BANC_INEG  
                Set FE_REPO = IsNull(FE_PROG_CHEQ, FE_OPER)  
  WHERE TI_MOVI_BANC = 'E'  
  
            Else If @ISFE_EGRE  = 'C'  
  UPDATE #TWMOVI_BANC_INEG  
  Set FE_REPO = IsNull(FE_CHEQ, FE_OPER)  
  WHERE TI_MOVI_BANC = 'E'  
  
     Select T1.NU_COMP_BANC, T1.FE_REPO AS FE_REPO, T1.CO_TIPO_DOCU, T1.NU_DOCU_BANC,   
     T1.TI_ENTI, T1.CO_ENTI, Substring(t1.DE_NOMB_ORDE,1,20) as NO_AUXI,   
     isnull(T1.IM_INGR,'0.00') AS IM_INGR,  
         isnull(T1.IM_EGRE,'0.00') AS IM_EGRE,  
     isnull(T1.SA_INIC,'0.00') AS SA_INIC,  
     T1.TI_SITU, T1.NU_CHEQ  
     From #TWMOVI_BANC_INEG T1  
     ORDER BY 1 , convert(datetime,T1.FE_REPO,103)  
  
/*------------------------------ FIN ---------------------------------*/


GO
